package com.bulk.demo.insert.mapper;

import com.bulk.demo.insert.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * (User)表数据库访问层
 *
 * @author 散装java
 */
@Mapper
public interface UserMapper {
    /**
     * 新增或者删除
     *
     * @param user 入参对象
     * @return 影响行数
     */
    int insertOrUpdate(@Param("user") User user);

    @Transactional
    int insertOrUpdateBatch(@Param("list") List<User> list);

    User queryById(@Param("id") Integer id);

    /**
     * 根据ids(逗号隔开) 去查询，格式为 1,2,3
     *
     * @param ids “1,2,3”
     * @return list
     */
    List<User> selectByIds(@Param("ids") String ids);

    int updateVersion(@Param("id") Integer id);


    int updateByName(@Param("name") String name);

    int updateById(@Param("id") Integer id);

    void callIdInsert(@Param("user") User user);

    /**
     * 批量插入
     *
     * @param list ls
     * @return 影响行数
     */
    int insertBatch(@Param("list") List<User> list);
}
